home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)aax.d64
/
ss-4
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
5KB
|
137 lines
100 REM*** KEY BUFFER IS C64 ONLY!!
110 :
120 PRINT"[147][158] FORM MAKER - LOUIS F. SANDER [146] "
130 POKE53280,6:POKE53281,6
140 PRINT"[153] THIS MAKES A FORM ON YOUR PRINTER."
150 INPUT" YOUR PRINTER WIDTH IN SPACES 80[157][157][157][157]";PW:PW=PW-1
160 INPUT" YOUR PAPER LENGTH IN INCHES 11[157][157][157][157]";PL:PL=INT(9*PL)
170 PRINT" COLUMN 1 COLUMN 2"
180 PRINT"[153] [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
190 PRINT" ROW 1 [153][165] [165] [165]"
200 PRINT" [207][183][183][183][183][183][183][183][183][183][183][207][183][183][183][183][183][183][183][183][183][183][183][183][183][165]"
210 PRINT" ROW 2 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
220 PRINT" [165] [165] [165]"
230 PRINT" ROW 3 [153][204][175][175][175][175][175][175][175][175][175][175][204][175][175][175][175][175][175][175][175][175][175][175][175][175][165]"
240 PRINT"[158]THE FORM CAN HAVE ANY NUMBER OF COLUMNS"
250 PRINT"AND ROWS. IT CAN BE UP TO";PW;"[158]PRINTER"
260 PRINT"SPACES WIDE AND";PL;"[158]PRINTER LINES LONG,"
270 PRINT"INCLUDING LABELS FOR COLUMNS AND ROWS."
280 PRINT"YOU CHOOSE ANINDIVIDUAL WIDTH FOR EACH"
290 PRINT"COLUMN, AND ONE HEIGHT FOR ALL THE ROWS."
295 PRINT" DO YOU WANT TO LOAD A FORM?
296 [161]A$:[139]A$[178]""[167]296
297 [139]A$[178]"Y"[167]1300
300 [133]" HOW MANY COLUMNS ON THE FORM";NC%:[134]CW(NC%):[153]:[139]NC%[179]1[167]1020
310 W[178]0:[129]J[178]1[164]NC%
320 [153]" HOW MANY SPACES IN COLUMN";J;"CMD";:CW(J)[178]0:[133]CW(J)
330 [139]CW(J)[179]1[167][153][163]35)"ONSYS_ ???":[137]320
340 W[178]W[170]CW(J):[130]
350 [153]"SYSTHESE COLUMNS TAKE UP";W;"SYSOF THE";PW
360 [153]"SYSAVAILABLE SPACES ON YOUR PRINTER."
370 [139]W[177]PW[167][153]" ABORTED - MAXIMUM WIDTH IS";PW;"CMD SPACES. ":[137]1020
380 [133]" IS THIS O.K. (Y OR N) YCMDCMDCMD";A$:[139]A$[179][177]"Y"[167][153]:[137]310
390 [133]" LABEL THE COLUMNS (Y OR N) YCMDCMDCMD";A$:[139][200](A$,1)[179][177]"Y"[167]470
400 [141]1090:[129]J[178]1[164]NC%
410 [153]"LABEL FOR COLUMN";J;"-";CW(J);"SPACES"
420 [153]" ";[199](34);[199](20);[199](34);
430 [129]K[178]1[164]CW(J):[153]" ";:[130]:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON";
440 [153]"ON";:[151]631,29:[151]198,1:[133]A$
450 [139][195](A$)[179][177]CW(J)[167][153]"SYS ERROR!! - TRY AGAIN ":[137]410
460 L$[178]L$[170]A$:[130]
470 [153]"SYSTHAT FINISHES THE VERTICAL COLUMNS."
480 [153]"NOW WE WILL DO THE HORIZONTAL ROWS,"
490 [153]"WHICH CAN FILL UP TO";PL[171]1;"SYSPRINTER LINES."
500 [133]" HOW MANY ROWS ON THE FORM";NR%:[139]NR%[179]1[167]500
510 NW[178][195]([196](NR%))[171]1:NW$[178][200](" ",NW)
520 [133]"HOW MANY PRINTER LINES PER ROW";LR%:[139]LR%[179]1[167]520
530 TL[178]NR%[172]LR%[170]1:[134]L$(TL[170]2)
540 [153]"SYSTHESE ROWS TAKE UP";TL;"SYSPRINTER LINES,"
550 [153]"INCLUDING A LINE FOR COLUMN LABELS."
560 [153]"YOUR PAPER HAS";PL;"SYSLINES, LEAVING";PL[171]TL
570 [153]"SYSLINES UNPRINTED."
580 [139]TL[177]PL[167][153]" ABORTED - TOO LONG FOR THE PAPER.":[137]1020
590 [153]"SYSTHE FORM IS";W;"SYSSPACES WIDE, LEAVING"
600 [153]"CMD";PW[171]W;"SYSSPACES FOR ";
610 [139]NW[178][179]PW[171]W[167][153]"NUMBERING OR ";
620 [153]"LABELING"
630 [153]"ITS";NR%;"SYSHORIZONTAL ROWS."
640 [139]NW[177]PW[171]W[167][153]"THERE IS NO ROOM TO NUMBER THEM.":[137]690
650 [133]" NUMBER THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]690
660 [129]J[178]0[164]TL:L$(J)[178]NW$:[130]:J[178]1
670 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR%:L$(K)[178][201](" "[170][196](J),NW):J[178]J[170]1
680 [130]:[137]830
690 [133]" LABEL THE ROWS (Y OR N)";A$:[139][200](A$,1)[179][177]"Y"[167]830
700 [141]1090
710 [133]" # SPACES IN LONGEST LABEL";LW
720 [139]LW[177]PW[171]W[167][153]"SYS ERROR!! -";PW[171]W;"CMD MAXIMUM ":[137]710
730 [129]J[178]1[164]LW:LW$[178]LW$[170]" ":[130]
740 [129]J[178]0[164]TL:L$(J)[178]LW$:[130]:J[178]1
750 [129]K[178]1[170][181]((LR%[171]1)[173]2)[164]TL[171]1[169]LR%
760 [153]"LABEL FOR ROW";J;"-";LW;"SPACES"
770 [153]" ";[199](34);LW$;:A[178][185](0):[153][199](34):[139]A[177]38[167][153]"ON";
780 [153]"ON";:[151]631,29:[151]198,1:[133]A$
790 [139][195](A$)[179][177]LW[167][153]"SYS ERROR!! - TRY AGAIN ":[137]760
800 L$(K)[178]A$:J[178]J[170]1:[130]
810 :
820 [143] PRINT THE FORM
830 [153]"SYSTHE FORM IS" [200]([196]((LW[170]W)[173]10),5);[199](34);" WIDE BY";
840 [153][200]([196](TL[173]9),5);[199](34);" LONG,"
850 [153]"OR";LW[170]W;"SPACES WIDE BY";TL;"LINES LONG."
855 [153]" PWAITRINT OR SWAITAVE THIS FORM?
856 GETA$:IF A$="S"THENGOTO1200
857 IFA$<>"P"THEN856
860 PRINT"[153][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]"
870 PRINT" ALIGN THE PAPER IN THE PRINTER, "
880 PRINT" THEN PRESS THE 'P' KEY... "
890 GETA$:IFA$=""THEN890
892 IFA$="P"THEN900
895 IFA$="Q"THEN1000
896 GOTO890
900 T$=CHR$(15) :REM TEXT MODE **TARGET
910 G$=CHR$(8) :REM GRAPHICS MODE (FOR LINE SPACING)
920 OPEN4,4:CMD4:GOSUB1060:PRINTL$
930 FORH=1TONR%:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(207);:FORK=1TOCW(J)-1
940 IFCW(J)>1THENPRINTCHR$(163);
950 NEXT:NEXT:PRINTCHR$(165);G$:IFLR%<2THEN990
960 FORI=1TOLR%-1:GOSUB1060;:FORJ=1TONC%:PRINTCHR$(165);:FORK=1TOCW(J)-1
970 IFCW(J)>1THENPRINT" ";
980 NEXT:NEXT:PRINTCHR$(165);G$:NEXT
990 NEXT:GOSUB1060;:FORJ=1TONC%:FORK=1TOCW(J):PRINTCHR$(163);:NEXT:NEXT
995 PRINT#4:CLOSE4
1000 PRINT"[147][158] FORM MAKER - LOUIS F. SANDER [146] "
1010 PRINT" YOUR FORM IS FINISHED!"
1020 POKE53280,14:POKE53281,6:PRINT"[154]";
1030 PRINT" CREATE ANOTHER FORM?"
1031 GOSUB1500
1033 GETA$:IFA$=""THEN1033
1035 IFA$="Y"THENCLR:GOTO120
1036 END
1040 :
1050 REM ROW LABELS SUBROUTINE
1060 PRINTT$;L$(LC);:LC=LC+1:RETURN
1070 :
1080 REM LABEL SUBROUTINE
1090 PRINT"[158]ENTER THE LABELS RIGHT NOW. YOU MUST"
1100 PRINT"KEEP THEM BETWEEN THE QUOTATION MARKS,"
1110 PRINT"BUT YOU CAN CENTER THEM OR POSITION"
1120 PRINT"THEM AS YOU LIKE."
1130 RETURN
1190 REM * FILE HANDLING BY BRIAN ROWE *
1200 CLOSE2:INPUT" FORM NAME";A$
1210 OPEN2,8,1,A$+",S,W"
1212 PRINT#2,TL:PRINT#2,LW:PRINT#2,W:PRINT#2,L$:PRINT#2,NR%:PRINT#2,NC%
1213 PRINT#2,LR%
1215 FORX=0TOTL:PRINT#2,CHR$(34)+L$(X)+CHR$(34):NEXT
1216 FORY=1TONC%:PRINT#2,CW(Y):NEXT:CLOSE2
1240 GOTO 860
1300 CLOSE2:INPUT" FORM NAME";A$
1310 OPEN2,8,2,A$+",S,R"
1312 INPUT#2,TL:INPUT#2,LW:INPUT#2,W:INPUT#2,L$:INPUT#2,NR%:INPUT#2,NC%
1313 INPUT#2,LR%
1314 DIMCW(NC%):DIML$(TL+2)
1315 FORX=0TOTL:INPUT#2,L$(X):NEXT
1317 FORY=1TONC%:INPUT#2,CW(Y):NEXT:CLOSE2
1330 GOTO860
1500 PRINT" [158] FILE ROUTINES BY BRIAN D. ROWE [145][145][145][145][145]"
1501 RETURN